package com.hex.ds.hdrs.label.service;

import com.hex.bigdata.hbda.base.Page;
import com.hex.ds.hdrs.common.page.PageData;
import com.hex.ds.hdrs.label.dto.LabelInfoDto;

import com.hex.ds.hdrs.label.po.LabelInfoPo;
import org.springframework.stereotype.Service;

import java.util.List;


/**
 * @Package com.hex.ds.hdrs.label.service
 * @ClassName ILabelInfoService
 * @Description 标签信息定义业务接口
 * @Author yu liuyang
 * @Date 2023/4/17 18:11
 * @Version v1.0
 **/
@Service
public interface ILabelInfoService {

    /**
     * @Method queryListByPage <br>
     * @Param [labelInfoDto, page] <br>
     * @Return com.hex.ds.hdrs.common.page.PageData <br>
     * @Description 分页查询标签信息列表 <br>
     * @Author yu liuyang <br>
     * @Date 2023/4/17 18:11 <br>
     * @Version V1.0 <br>
     */
    PageData queryListByPage(LabelInfoDto labelInfoDto, Page page);

    /**
     * @Method queryList <br>
     * @Param [labelInfoDto] <br>
     * @Return java.util.List<com.hex.ds.hdrs.label.po.LabelInfoPo> <br>
     * @Description 查询所有标签信息列表 <br>
     * @Author yu liuyang <br>
     * @Date 2023/4/17 18:12 <br>
     * @Version V1.0 <br>
     */
    List<LabelInfoPo> queryList(LabelInfoDto labelInfoDto);

    /*
     * @Method: queryListByJobCode <br>
     * @Param: [jobCode] <br>
     * @Return: java.util.List<com.hex.ds.hdrs.label.po.LabelInfoPo> <br>
     * @Description：根据作业编码查询对应的标签<br>
     * @Author： wz.li<br>
     * @Date： 2023/7/4 15:00 <br>
     * @Version： V2.0.2<br>
     */
    List<LabelInfoPo> queryListByJobCode(String jobCode);

    /**
     * @Method queryById <br>
     * @Param [pkId] <br>
     * @Return com.hex.ds.hdrs.label.po.LabelInfoPo <br>
     * @Description 根据id查询标签信息类 <br>
     * @Author yu liuyang <br>
     * @Date 2023/4/17 18:13 <br>
     * @Version V1.0 <br>
     */
    LabelInfoPo queryById(String pkId);

    /*
     * @Method: queryByLabelCode <br>
     * @Param: [labelCode] <br>
     * @Return: com.hex.ds.hdrs.label.po.LabelInfoPo <br>
     * @Description：根据标签编码查询<br>
     * @Author： wz.li<br>
     * @Date： 2023/4/19 10:53 <br>
     * @Version： V2.0.2<br>
     */
    LabelInfoPo queryByLabelCode(String labelCode);

    /**
     * @Method add <br>
     * @Param [labelInfoDto] <br>
     * @Return void <br>
     * @Description 添加标签信息 <br>
     * @Author yu liuyang <br>
     * @Date 2023/4/17 18:13 <br>
     * @Version V1.0 <br>
     */
    void add(LabelInfoDto labelInfoDto);

    /**
     * @Method modifyById <br>
     * @Param [labelInfoDto] <br>
     * @Return void <br>
     * @Description 根据id修改标签信息 <br>
     * @Author yu liuyang <br>
     * @Date 2023/4/17 18:13 <br>
     * @Version V1.0 <br>
     */
    void modifyById(LabelInfoDto labelInfoDto);

    /**
     * @Method batchRemoveById <br>
     * @Param [pkIds] <br>
     * @Return void <br>
     * @Description 根据id批量删除标签信息 <br>
     * @Author yu liuyang <br>
     * @Date 2023/4/17 18:13 <br>
     * @Version V1.0 <br>
     */
    void batchRemoveById(List<String> pkIds);

    /**
     * @Method batchEnableById <br>
     * @Param [pkIds] <br>
     * @Return void <br>
     * @Description 根据id批量启用标签 <br>
     * @Author yu liuyang <br>
     * @Date 2023/4/17 18:14 <br>
     * @Version V1.0 <br>
     */
    void batchEnableById(List<String> pkIds);

    /**
     * @Method batchDisableById <br>
     * @Param [pkIds] <br>
     * @Return void <br>
     * @Description 根据id批量禁用标签 <br>
     * @Author yu liuyang <br>
     * @Date 2023/4/17 18:14 <br>
     * @Version V1.0 <br>
     */
    void batchDisableById(List<String> pkIds);

    /*
     * @Method: checkLabelCode <br>
     * @Param: [labelInfoDto] <br>
     * @Return: boolean <br>
     * @Description：检查标签编码是否重复（平台必须唯一）<br>
     * @Author： wz.li<br>
     * @Date： 2023/7/12 11:47 <br>
     * @Version： V2.0.2<br>
     */
    boolean checkLabelCode(LabelInfoDto labelInfoDto);
}
